配置

bosun采用组合式的语法,每一个代码段都拥有一个类型和一个名字,通过{}来圈定代码段的范围。代码段中都是键值对,类似于key = value。键的名字在=之前,并且其中不能含有空格,值是一个字符串,一直到行的末尾。可以使用`符号来定义复合行。在`符号以外的#是注释符号,注释掉其后的所有文字。键值对两端的空格会被去除。文件采用UTF8的编码方式。a

变量

变量在执行的过程中会被简单地文本所替代-它不是智能的。变量是一堆以$开头的字符串,当然也可以在字符串的两端加入中括号({}),举个例子,,可以用${var}来表示一个变量,在表达式被执行前,所有的变量都会被替换成文本。变量可以在任意的作用范围被定义,这意味着你可以定义全局变量和局部变量,当然局部变量可以被全局变量覆盖掉。

环境变量

环境变量可以和普通变量一样使用,但是在使用的时候需要加上.env前缀,举个例子,tsdbHost = ${env.TSDBHOST}(大括号可以选择性存在),调用了一个不存在或者值为空的环境变量是错误的。

代码段

全局变量

所有不在段落中的key=value对都是全局变量,它们通常被置于文件的顶部,所有的全局变量都是可以选择性存在的,但是你必须配置最少一个后端。

后端

  • tsdbHost:OpenTSDB的访问地址,必须采用压缩形式(使用OpenTSDB的next分支),可以同时制定IP和端口:tsdb-host:4242,如果端口没有指定,那么会使用默认端口4242,如果你使用的时候并未使用Bosun来转发数据岛OpenTSDB(这并非我们正式支持的)
    • 标签支持正则匹配,可以采用avg:metric.name{tag=something-*}的形式,当然单个星号比如说tag=*也能正常匹配。
    • 项目页
    • 图标页中得标签列表
  • tsdbVersion:如果没有指定默认的OpenTSDB版本为2.1,应该按照数字.数字的形式被指定,不同在OpenTSDB 特性在新版本中逐步被添加。
  • relayListen:监听指定的端口(默认为4242端口),将会将收到的所有/api/X请求转发到OpenTSDB上去,这是一个在使用OpenTSDB时的可选功能,没有任何的Bousn功能会依赖这个变量。
  • graphiteHost:

    数据存储

    在bosun的0.5.0版本,bosun使用redis来存储其内部的状态信息,你可以选择运行一个redis服务来支撑bosun的状态数据,当然如果你采用单机模式你可以使用内嵌的ledisDb数据库来代替Redis。我们推荐在正式环境下使用Redis,这里我们展示了一个redis配置的例子、所有经过测试的redis版本以及一个备份作业的计划任务样例。 配置项:

  • redisHost:使用的redis服务地址,例子:localhost:6379,需要3.0版本以上的Redis。

  • redisDb:redis使用的数据库,默认为0。
  • redisPassword:redis使用的密码。
  • ledisDir: ledisDb用来存放数据的目录,如果没有使用redis,那么默认会把ledisDb数据存放在工作目录下。
  • ledisBindAddr:ledisDb绑定的IP和端口,默认为127.0.0.1:9565。

配置信息

  • checkFrequency: time between alert checks, defaults to 5m
  • defaultRunEvery: default multiplier of check frequency to run alerts. Defaults to 1.
  • emailFrom: from address for notification emails, required for email notifications
  • httpListen: HTTP listen address, defaults to :8070
  • hostname: when generating links in templates, use this value as the hostname instead of using the system’s hostname
  • minGroupSize: minimum group size for alerts to be grouped together on dashboard. Default 5.
  • ping: if present, will ping all values tagged with host
  • responseLimit: number of bytes to limit OpenTSDB responses, defaults to 1MB (1048576)
  • searchSince: duration of time to filter by during certain searches, defaults to 3d; currently used by the hosts list on the items page
  • smtpHost: SMTP server, required for email notifications
  • squelch: see alert squelch
  • stateFile: bosun state file, defaults to bosun.state
  • unknownTemplate: name of the template for unknown alerts
  • shortURLKey: goo.gl API key, needed if you hit usage limits when using the short link button

SMTP认证

宏段

模板段

预警模板中的可用变量

预警模板中的可用函数

未知模板

预警段

一个预警是能够触发邮件行为或者是纪录行为表达式,这个表达式需要产出一个标量,当这个标量的值不为0的时候就会触发预警,预警行为会根据标签列表返回一个队列。指定开始时间和结束时间在预警行为中是个错误,下面的这些变量决定了这个预警系统的行为。

  • crit:
  • critNotification:
  • depends:
  • ignoreUnknown:
  • unknownIsNormal:
  • runEvery:
  • squelch:
  • template:
  • unjoinedOk:
  • unknown:
  • warn:
  • warnNotification:
  • log:
  • maxLogFrequency:

通知段

通知行为

查找段

样例文件

tsdbHost = tsdb01.stackoverflow.com:4242
smtpHost = mail.stackoverflow.com:25

template cpu {
    body = `Alert definition:
    Name: {{.Alert.Name}}
    Crit: {{.Alert.Crit}}

    Tags:{{range $k, $v := .Group}}
    {{$k}}: {{$v}}{{end}}
    `
    subject = cpu idle at {{.Alert.Vars.q | .E}} on {{.Group.host}}
}

notification default {
    email = [email protected]
    next = default
    timeout = 1h
}

alert cpu {
    template = cpu
    $q = avg(q("sum:rate:linux.cpu{host=*,type=idle}", "1m"))
    crit = $q < 40
    notification = default
}

results matching ""

    No results matching ""